package com.xingole.xspringframework.beans.factory;

/**
 * The root interface for accessing a Spring bean container.
 * 
 * <p>This is the basic client view of a bean container; further interfaces such as 
 * {@link ListableBeanFactory} and 
 * {@link org.springframework.beans.factory.config.ConfigurableBeanFactory} are available
 * for specific purposes.
 * 
 * <p>This interface is implemented by objects that hold a number of bean definitions, each
 * uniquely identified by a String name. Depending on the bean definition, the factory will 
 * return either an independent instance of a contained object (the Prototype design pattern)
 * , or a single shared instance (a superior alternative to the Singleton design pattern, in 
 * which the instance is a singleton in the scope of the factory). Which type of instance will
 * be returned depends on the bean factory configuration: the API is the same. Since Spring 
 * 2.0, further scopes are available depending on the concrete application context (e.g. "request"
 * and "session" scopes in a web environment).
 * 
 * 
 */
public interface BeanFactory {
    
}
